package cn.iocoder.yudao.module.pickbook.service.classinfo;

import cn.iocoder.yudao.module.pickbook.dal.dataobject.classes.PickbookClassDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

import java.util.List;

/**
 * 班级 Service 接口
 *
 * @author 芋道源码
 */
public interface PickbookClassService {

    /**
     * 创建班级
     *
     * @param name 班级名称
     * @param description 班级描述
     * @param teacherId 教师ID
     * @return 班级信息
     */
    PickbookClassDO createClass(String name, String description, Long teacherId);

    /**
     * 通过班级口令加入班级
     *
     * @param classCode 班级口令
     * @param userId 用户ID
     * @return 班级信息
     */
    PickbookClassDO joinClassByCode(String classCode, Long userId);

    /**
     * 获取用户的班级列表
     *
     * @param userId 用户ID
     * @return 班级列表
     */
    List<PickbookClassDO> getUserClasses(Long userId);

    /**
     * 获取班级信息
     *
     * @param id 班级ID
     * @return 班级信息
     */
    PickbookClassDO getClass(Long id);

    /**
     * 更新班级信息
     *
     * @param classInfo 班级信息
     */
    void updateClass(PickbookClassDO classInfo);

    /**
     * 删除班级
     *
     * @param id 班级ID
     */
    void deleteClass(Long id);

    /**
     * 生成班级口令
     *
     * @return 班级口令
     */
    String generateClassCode();

} 